$(document).ready(function() {
	if ($('#pw-validation').val().toLowerCase().indexOf('password') != -1) {
		$('#inputPassword').parent().addClass('has-error');
		$('#inputPassword').tooltip({
			title : $("#pw-validation").val(),
			placement : 'right'
		});
	}
	else if($("#inputPassword").val().length > 0){
		$('#inputPassword').parent().addClass('has-success');
	}
	
	if ($('#un-validation').val().toLowerCase().indexOf('username') != -1) {
		$('#inputUsername').parent().addClass('has-error');
		$('#inputUsername').tooltip({
			title : $("#un-validation").val(),
			placement : 'right'
		});
	}
	else if($("#inputUsername").val().length > 0){
		$('#inputUsername').parent().addClass('has-success');
	}

	$('#inputUsername').keyup(function() {
		validateUsernameInput();
	});

	$('#inputPassword').keyup(function() {
		validatePasswordInput();
	});

	$('#inputUsername').focus(function() {
		validateUsernameInput();
	});

	$('#inputPassword').focus(function() {
		validatePasswordInput();
	});

	$('#inputUsername').focusin(function() {
		validateUsernameInput();
	});

	$('#inputPassword').focusin(function() {
		validatePasswordInput();
	});

	$('#inputUsername').focusout(function() {
		validateUsernameInput();
	});

	$('#inputPassword').focusout(function() {
		validatePasswordInput();
	});

	$('#inputUsername').blur(function() {
		validateUsernameInput();
	});

	$('#inputPassword').blur(function() {
		validatePasswordInput();
	});

	$('#inputUsername').change(function() {
		validateUsernameInput();
	});

	$('#inputPassword').change(function() {
		validatePasswordInput();
	});

	$('#btn-login').click(function(e) {
		e.preventDefault();
		var validUsername = validatePasswordInput();
		var validPassword = validateUsernameInput();
		if (validUsername === true && validPassword === true) {
			$("#login-form").submit();
		}
	});
});

function isEmail(email) {
	var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return regex.test(email);
}

function validateUsernameInput() {
	$('#inputUsername').tooltip('destroy');
	$('#inputUsername').parent().removeClass('has-error');
	$('#inputUsername').parent().removeClass('has-success');
	var username = $('#inputUsername').val();
	if (username === "") {
		$('#inputUsername').parent().addClass('has-error');
		$('#inputUsername').tooltip({
			title : 'Required',
			placement : 'right'
		});
		return false;
	} else if (!isEmail(username)) {
		$('#inputUsername').parent().addClass('has-error');
		$('#inputUsername').tooltip({
			title : 'Invalid Email Format',
			placement : 'right',
			container : 'body'
		});

		return false;
	} else {
		$('#inputUsername').parent().addClass('has-success');
		return true;
	}
}

function validatePasswordInput() {
	$('#inputPassword').tooltip('destroy');
	$('#inputPassword').parent().removeClass('has-error');
	$('#inputPassword').parent().removeClass('has-success');
	var password = $('#inputPassword').val();
	if (password === "") {
		$('#inputPassword').parent().addClass('has-error');
		$('#inputPassword').tooltip({
			title : 'Required',
			placement : 'right'
		});
		return false;
	} else {
		$('#inputPassword').parent().addClass('has-success');
		return true;
	}
}